
\section{Non-Functional Requirements}
\label{sec:non-functional-requirements}

It is very important that Non-functional requirements are clearly specified and clearly followed by the design, implementation and testing phases. This is because if a non-functional requirement is not met by the system then the system will not function properly and the user has no way of getting around that problem. For this reason, it was decided that non-functional requirements are carefully derived and carefully followed during the engineering process.\\

\begin{enumerate}
\item The software shall be able to work on WebPages.
	\begin{enumerate}
	\item The software shall be able to work as a Java applet on WebPages.
	\item The software shall be able to run every time a new request of that page is made.
	\end{enumerate}
\item The software shall not take longer than a normal webpage to open.
	\begin{enumerate}
	\item There shall not be difference of time between opening a normal Webpage and the Applet.
	\item In worst case the Applet shall not take longer than 3 seconds to open.
	\end{enumerate}
\item The user interface of the software shall be implemented using Java Applet.
\item The applet shall be able to open 99\% of the time. 
	\begin{enumerate}
	\item Every time the Webpage is open the Applet shall respond to that request properly
		\begin{enumerate}
		\item 99\% of the time the Applet shall open and work as normally.
		\item If the Applet is unable to load its resources it shall warn the user.
		\end{enumerate}
	\end{enumerate}
\item The applet shall be able to work with main browsers. 
	\begin{enumerate}
	\item If the user opens the Applet in a browses which does not support the Apple then the user shall be informed. 
	\end{enumerate}
\item The software shall be completed before 10th March 2008.
	\begin{enumerate}
	\item The Requirements Engineering shall be completed by 27th October 2007.
	\item The design stage shall be completed by 13th November 2007.
	\item The Implementation shall not take longer than 8th February 2008.
	\item Testing shall be completed by 23rd February 20008.
	\end{enumerate}
\item Major parts of the documentation shall be completed once its corresponding phases are completed. 
	\begin{enumerate}
	\item Requirements documentation shall be completed before the design stage takes place. 
	\item Design documentation shall be completed before the implementation takes place. 
	\end{enumerate}
\item The software shall be implemented in stages using the Waterfall methodology followed by Evolutionary approach. 
	\begin{enumerate}
	\item Waterfall methodology shall be used until the software has met the initial requirements.
	\item Once the initial requirements have been met the Evolutionary approach shall be used to improve the software quality. 
	\end{enumerate}
\item Only registered users shall be able to access the system.
	\begin{enumerate}
	\item The Applet shall give access to users that have a username and password.
	\item For unauthorised users the Applet shall display a message. 
	\end{enumerate}
\item The system shall be appropriate for the task, allowing users to complete the tasks without presenting unnecessary errors. 
	\begin{enumerate}
	\item The Applet shall be able to complete users needs
		\begin{enumerate}
		\item The Applet shall give the user the ability to draw UML diagrams.
		\item The Applet shall give the registered user to delete and edit the documents if no one else is using that particular document. 
		\end{enumerate}
	\item The Applet shall display an error only if a particular task can not be completed or the user is trying to access files without permission.
	\end{enumerate}
\item The software shall be easy to learn, and appropriate to users ability.
	\begin{enumerate}
	\item Normal users shall be able to use the Applet with 2 hours of training.
	\end{enumerate}
\item The system should prevent the users from errors and allow error recovery. 
	\begin{enumerate}
	\item If an error occurs, an error message shall be displayed and the Applet shall continue working.
		\begin{enumerate}
		\item In any case the Applet shall be able to recover from errors, giving the user the option to save the file and continue to the next task.
		\end{enumerate}
	\end{enumerate}
\item The system shall provide services to any registered user on any network at any given time.
	\begin{enumerate}
	\item The Applet shall be viewed by any registered user on the internet no matter of the location.
	\end{enumerate}
\item The Applet shall keep track of all the files.
	\begin{enumerate}
	\item Once the applet is open the users shall be able to see all the saved files in appropriate directories. 
	\item The Applet should be able to save the file at any given time. 
		\begin{enumerate}
		\item If the file has not been saved before, the Apple shall ask the user for a directory of where the file is to be saved. 
		\item If the file can not be saved at that given time, the Applet shall warn the user about the error. 
		\end{enumerate}
	\end{enumerate}
\end{enumerate}